/*
 * SimpleModal 1.4.3 - jQuery Plugin
 * http://simplemodal.com/
 * Copyright (c) 2012 Eric Martin
 * Licensed under MIT and GPL
 * Date: Sat, Sep 8 2012 07:52:31 -0700
 */
(function(b){
    "function"===typeof define&&define.amd?define(["jquery"],b):b(jQuery)
    })(function(b){
    var j=[],l=b(document),m=b.browser.msie&&6===parseInt(b.browser.version)&&"object"!==typeof window.XMLHttpRequest,o=b.browser.msie&&7===parseInt(b.browser.version),n=null,k=b(window),h=[];
    b.modal=function(a,d){
        return b.modal.impl.init(a,d)
        };
        
    b.modal.close=function(){
        b.modal.impl.close()
        };
        
    b.modal.focus=function(a){
        b.modal.impl.focus(a)
        };
        
    b.modal.setContainerDimensions=function(){
        b.modal.impl.setContainerDimensions()
        };
    b.modal.setPosition=function(){
        b.modal.impl.setPosition()
        };
        
    b.modal.update=function(a,d){
        b.modal.impl.update(a,d)
        };
        
    b.fn.modal=function(a){
        return b.modal.impl.init(this,a)
        };
        
    b.modal.defaults={
        appendTo:"body",
        focus:!0,
        opacity:50,
        overlayId:"simplemodal-overlay",
        overlayCss:{},
        containerId:"simplemodal-container",
        containerCss:{},
        dataId:"simplemodal-data",
        dataCss:{},
        minHeight:null,
        minWidth:null,
        maxHeight:null,
        maxWidth:null,
        autoResize:!1,
        autoPosition:!0,
        zIndex:1E3,
        close:!0,
        closeHTML:'<a class="modalCloseImg" title="Close"></a>',
        closeClass:"simplemodal-close",
        escClose:!0,
        overlayClose:!1,
        fixed:!0,
        position:null,
        persist:!1,
        modal:!0,
        onOpen:null,
        onShow:null,
        onClose:null
    };
    
    b.modal.impl={
        d:{},
        init:function(a,d){
            if(this.d.data)return!1;
            n=b.browser.msie&&!b.support.boxModel;
            this.o=b.extend({},b.modal.defaults,d);
            this.zIndex=this.o.zIndex;
            this.occb=!1;
            if("object"===typeof a){
                if(a=a instanceof b?a:b(a),this.d.placeholder=!1,0<a.parent().parent().size()&&(a.before(b("<span></span>").attr("id","simplemodal-placeholder").css({
                    display:"none"
                })),
                this.d.placeholder=!0,this.display=a.css("display"),!this.o.persist))this.d.orig=a.clone(!0)
                    }else if("string"===typeof a||"number"===typeof a)a=b("<div></div>").html(a);else return alert("SimpleModal Error: Unsupported data type: "+typeof a),this;
            this.create(a);
            this.open();
            b.isFunction(this.o.onShow)&&this.o.onShow.apply(this,[this.d]);
            return this
            },
        create:function(a){
            this.getDimensions();
            if(this.o.modal&&m)this.d.iframe=b('<iframe src="javascript:false;"></iframe>').css(b.extend(this.o.iframeCss,

            {
                display:"none",
                opacity:0,
                position:"fixed",
                height:h[0],
                width:h[1],
                zIndex:this.o.zIndex,
                top:0,
                left:0
            })).appendTo(this.o.appendTo);
            this.d.overlay=b("<div></div>").attr("id",this.o.overlayId).addClass("simplemodal-overlay").css(b.extend(this.o.overlayCss,{
                display:"none",
                opacity:this.o.opacity/100,
                height:this.o.modal?j[0]:0,
                width:this.o.modal?j[1]:0,
                position:"fixed",
                left:0,
                top:0,
                zIndex:this.o.zIndex+1
                })).appendTo(this.o.appendTo);
            this.d.container=b("<div></div>").attr("id",this.o.containerId).addClass("simplemodal-container").css(b.extend({
                position:this.o.fixed?
                "fixed":"absolute"
                },this.o.containerCss,{
                display:"none",
                zIndex:this.o.zIndex+2
                })).append(this.o.close&&this.o.closeHTML?b(this.o.closeHTML).addClass(this.o.closeClass):"").appendTo(this.o.appendTo);
            this.d.wrap=b("<div></div>").attr("tabIndex",-1).addClass("simplemodal-wrap").css({
                height:"100%",
                outline:0,
                width:"100%"
            }).appendTo(this.d.container);
            this.d.data=a.attr("id",a.attr("id")||this.o.dataId).addClass("simplemodal-data").css(b.extend(this.o.dataCss,{
                display:"none"
            })).appendTo("body");
            this.setContainerDimensions();
            this.d.data.appendTo(this.d.wrap);
            (m||n)&&this.fixIE()
            },
        bindEvents:function(){
            var a=this;
            b("."+a.o.closeClass).bind("click.simplemodal",function(b){
                b.preventDefault();
                a.close()
                });
            a.o.modal&&a.o.close&&a.o.overlayClose&&a.d.overlay.bind("click.simplemodal",function(b){
                b.preventDefault();
                a.close()
                });
            l.bind("keydown.simplemodal",function(b){
                a.o.modal&&9===b.keyCode?a.watchTab(b):a.o.close&&a.o.escClose&&27===b.keyCode&&(b.preventDefault(),a.close())
                });
            k.bind("resize.simplemodal orientationchange.simplemodal",
                function(){
                    a.getDimensions();
                    a.o.autoResize?a.setContainerDimensions():a.o.autoPosition&&a.setPosition();
                    m||n?a.fixIE():a.o.modal&&(a.d.iframe&&a.d.iframe.css({
                        height:h[0],
                        width:h[1]
                        }),a.d.overlay.css({
                        height:j[0],
                        width:j[1]
                        }))
                    })
            },
        unbindEvents:function(){
            b("."+this.o.closeClass).unbind("click.simplemodal");
            l.unbind("keydown.simplemodal");
            k.unbind(".simplemodal");
            this.d.overlay.unbind("click.simplemodal")
            },
        fixIE:function(){
            var a=this.o.position;
            b.each([this.d.iframe||null,!this.o.modal?null:this.d.overlay,
                "fixed"===this.d.container.css("position")?this.d.container:null],function(b,f){
                    if(f){
                        var g=f[0].style;
                        g.position="absolute";
                        if(2>b)g.removeExpression("height"),g.removeExpression("width"),g.setExpression("height",'document.body.scrollHeight > document.body.clientHeight ? document.body.scrollHeight : document.body.clientHeight + "px"'),g.setExpression("width",'document.body.scrollWidth > document.body.clientWidth ? document.body.scrollWidth : document.body.clientWidth + "px"');
                        else{
                            var c,e;
                            a&&a.constructor===
                            Array?(c=a[0]?"number"===typeof a[0]?a[0].toString():a[0].replace(/px/,""):f.css("top").replace(/px/,""),c=-1===c.indexOf("%")?c+' + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"':parseInt(c.replace(/%/,""))+' * ((document.documentElement.clientHeight || document.body.clientHeight) / 100) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"',a[1]&&(e="number"===typeof a[1]?
                                a[1].toString():a[1].replace(/px/,""),e=-1===e.indexOf("%")?e+' + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"':parseInt(e.replace(/%/,""))+' * ((document.documentElement.clientWidth || document.body.clientWidth) / 100) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"')):(c='(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"',
                                e='(document.documentElement.clientWidth || document.body.clientWidth) / 2 - (this.offsetWidth / 2) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"');
                            g.removeExpression("top");
                            g.removeExpression("left");
                            g.setExpression("top",c);
                            g.setExpression("left",e)
                            }
                        }
                })
    },
focus:function(a){
    var d=this,a=a&&-1!==b.inArray(a,["first","last"])?a:"first",f=b(":input:enabled:visible:"+a,d.d.wrap);
    setTimeout(function(){
        0<f.length?f.focus():d.d.wrap.focus()
        },
    10)
    },
getDimensions:function(){
    var a="undefined"===typeof window.innerHeight?k.height():window.innerHeight;
    j=[l.height(),l.width()];
    h=[a,k.width()]
    },
getVal:function(a,b){
    return a?"number"===typeof a?a:"auto"===a?0:0<a.indexOf("%")?parseInt(a.replace(/%/,""))/100*("h"===b?h[0]:h[1]):parseInt(a.replace(/px/,"")):null
    },
update:function(a,b){
    if(!this.d.data)return!1;
    this.d.origHeight=this.getVal(a,"h");
    this.d.origWidth=this.getVal(b,"w");
    this.d.data.hide();
    a&&this.d.container.css("height",a);
    b&&this.d.container.css("width",
        b);
    this.setContainerDimensions();
    this.d.data.show();
    this.o.focus&&this.focus();
    this.unbindEvents();
    this.bindEvents()
    },
setContainerDimensions:function(){
    var a=m||o,d=this.d.origHeight?this.d.origHeight:b.browser.opera?this.d.container.height():this.getVal(a?this.d.container[0].currentStyle.height:this.d.container.css("height"),"h"),a=this.d.origWidth?this.d.origWidth:b.browser.opera?this.d.container.width():this.getVal(a?this.d.container[0].currentStyle.width:this.d.container.css("width"),"w"),f=this.d.data.outerHeight(!0),
    g=this.d.data.outerWidth(!0);
    this.d.origHeight=this.d.origHeight||d;
    this.d.origWidth=this.d.origWidth||a;
    var c=this.o.maxHeight?this.getVal(this.o.maxHeight,"h"):null,e=this.o.maxWidth?this.getVal(this.o.maxWidth,"w"):null,c=c&&c<h[0]?c:h[0],e=e&&e<h[1]?e:h[1],i=this.o.minHeight?this.getVal(this.o.minHeight,"h"):"auto",d=d?this.o.autoResize&&d>c?c:d<i?i:d:f?f>c?c:this.o.minHeight&&"auto"!==i&&f<i?i:f:i,c=this.o.minWidth?this.getVal(this.o.minWidth,"w"):"auto",a=a?this.o.autoResize&&a>e?e:a<c?c:a:
    g?g>e?e:this.o.minWidth&&"auto"!==c&&g<c?c:g:c;
    this.d.container.css({
        height:d,
        width:a
    });
    this.d.wrap.css({
        overflow:f>d||g>a?"auto":"visible"
        });
    this.o.autoPosition&&this.setPosition()
    },
setPosition:function(){
    var a,b;
    a=h[0]/2-this.d.container.outerHeight(!0)/2;
    b=h[1]/2-this.d.container.outerWidth(!0)/2;
    var f="fixed"!==this.d.container.css("position")?k.scrollTop():0;
    this.o.position&&"[object Array]"===Object.prototype.toString.call(this.o.position)?(a=f+(this.o.position[0]||a),b=this.o.position[1]||
        b):a=f+a;
    this.d.container.css({
        left:b,
        top:a
    })
    },
watchTab:function(a){
    if(0<b(a.target).parents(".simplemodal-container").length){
        if(this.inputs=b(":input:enabled:visible:first, :input:enabled:visible:last",this.d.data[0]),!a.shiftKey&&a.target===this.inputs[this.inputs.length-1]||a.shiftKey&&a.target===this.inputs[0]||0===this.inputs.length)a.preventDefault(),this.focus(a.shiftKey?"last":"first")
            }else a.preventDefault(),this.focus()
        },
open:function(){
    this.d.iframe&&this.d.iframe.show();
    b.isFunction(this.o.onOpen)?
    this.o.onOpen.apply(this,[this.d]):(this.d.overlay.show(),this.d.container.show(),this.d.data.show());
    this.o.focus&&this.focus();
    this.bindEvents()
    },
close:function(){
    if(!this.d.data)return!1;
    this.unbindEvents();
    if(b.isFunction(this.o.onClose)&&!this.occb)this.occb=!0,this.o.onClose.apply(this,[this.d]);
    else{
        if(this.d.placeholder){
            var a=b("#simplemodal-placeholder");
            this.o.persist?a.replaceWith(this.d.data.removeClass("simplemodal-data").css("display",this.display)):(this.d.data.hide().remove(),a.replaceWith(this.d.orig))
            }else this.d.data.hide().remove();
        this.d.container.hide().remove();
        this.d.overlay.hide();
        this.d.iframe&&this.d.iframe.hide().remove();
        this.d.overlay.remove();
        this.d={}
    }
}
}
});
